#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Generic;
using Cephei.QL.Termstructures;
using Cephei.QL;
namespace Cephei.QL.Experimental.Callablebonds
{
     // <summary> 
	// ! Callable zero coupon bond, where the embedded (European) option price is assumed to obey the Black formula. Follows "European bond option" treatment in Hull, Fourth Edition, Chapter 20.  \warning This class has yet to be tested.  \ingroup callablebondengines
	// </summary>
    [Guid ("49A47453-0CCE-4937-B5AF-B52E18D30020"),ComVisible(true)]
	public interface IBlackCallableZeroCouponBondEngine : Cephei.QL.Experimental.Callablebonds.IBlackCallableFixedRateBondEngine
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
    }

    // <summary> 
	// ! Callable zero coupon bond, where the embedded (European) option price is assumed to obey the Black formula. Follows "European bond option" treatment in Hull, Fourth Edition, Chapter 20.  \warning This class has yet to be tested.  \ingroup callablebondengines Factory
	// </summary>
   	[ComVisible(true)]
    public interface IBlackCallableZeroCouponBondEngine_Factory // : Collection_Factory<IBlackCallableZeroCouponBondEngine, ICell<IBlackCallableZeroCouponBondEngine>>
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        
	    IBlackCallableZeroCouponBondEngine Create (Cephei.QL.Experimental.Callablebonds.ICallableBondVolatilityStructure yieldVolStructure, Cephei.QL.Termstructures.IYieldTermStructure discountCurve);
        
	    IBlackCallableZeroCouponBondEngine Create (Cephei.QL.IQuote fwdYieldVol, Cephei.QL.Termstructures.IYieldTermStructure discountCurve);
    }
}

